package com.ohs.ohsoa.system.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ohs.ohsoa.system.entity.Subgroup;
import com.ohs.ohsoa.system.entity.SubgroupAndUserRelation;
import com.ohs.ohsoa.system.entity.UserInfo;
import com.ohs.ohsoa.system.vo.SubgroupRequestBean;
import com.ohs.ohsoa.system.vo.SubgroupUserInfoVo;
import com.ohs.ohsoa.system.vo.SubgroupVo;
import com.ohs.ohsoa.system.vo.TreeVo;
import com.ohs.ohsoa.utils.bean.requestBean.PageParam;

/**
 * Subgroup小组设置
 *
 * @author mwx
 * @since  2021年9月22日
 */
public interface SubgroupService extends IService<Subgroup> {

    // 分页查询
    List<SubgroupVo> listSubgroup(PageParam<Subgroup> pageParam);

    // 员工查询
    List<SubgroupUserInfoVo> listUserInfo(PageParam<UserInfo> pageParam);

    // 员工查询
    List<TreeVo> treeUserInfo();

    // 新增
    void insertSubgroup(SubgroupRequestBean subgroup);

    // 小组详情成员list
    List<SubgroupAndUserRelation> listSubgroupAndUserRelation(PageParam<SubgroupAndUserRelation> pageParam);

    // 修改
    void updateSubgroup(SubgroupRequestBean subgroup);

    // 删除
    void deleteSubgroupById(List<String> ids);

    /**员工树
     *
     * @param groupEnterpriseGuid 企业id
     * @return 员工树
     */
    TreeVo treeUserInfoByGroupEnterpriseGuid(String groupEnterpriseGuid);

    /**员工树  获取除登陆者之外的员工树，用于会议页面
     *
     *
     * @param userInfo 用户信息
     * @return 员工树
     */
    TreeVo treeUserInfoByGroupEnterpriseGuidExceptLogin(UserInfo userInfo);
}
